package lambda;

/**
 * 方法引用
 */
public class LambdaDemo3 {
    public static void main(String[] args) {
        Shop shop = new Shop();
        //匿名内部类写法
//        Runnable r = new Runnable() {
//            @Override
//            public void run() {
//                shop.buy();
//            }
//        };

        //lambda表达式写法
//        Runnable r = ()->shop.buy();
//                     ^           ^
//                     |----一样----|
        //当lambda表达式中参数列表与表达式调用的方法参数列表一致时，可以简写为:方法引用
//        Runnable r = shop::buy;

        //调用成员方法 --   对象::成员方法名
        new Thread(shop::buy).start();
        //调用静态方法 --  类名::静态方法名
        new Thread(Shop::doSome).start();
    }
}

class Shop{
    public static void doSome(){
        System.out.println("买东西。。。");
    }
    public void buy(){
        System.out.println("买东西。。。");
    }
}